// observable 用于创建一个被监测的对象，对象的属性是应用对应的状态，状态会被自动转换为响应式数据
// action 函数是用来显示的定义， action 方法，action方法是用来修改，更新状态
import { observable, action } from "mobx-miniprogram"

// 开始创建 Store 对象
export const numStore = observable({
    // 对象的属性，就是应用的状态
    numA: 1,
    numB: 2,

    // 定义action方法，用来修改状态
    update: action(function() {
        // 在方法中如果需要获取状态，可以使用this进行获取
        this.numA += 1
        this.numB += 1
    }),

    // 计算属性 computed
    // 是根据已有的状态产生新的状态
    // 计算属性前面需要使用 get 修饰符进行修饰
    get sum() {
        // 计算属性内部必须要有返回值
        return this.numA + this.numB
    }
})